/**
 * Created by qiang on 2017-03-20 .
 */
var common = {
    APPID: 'wxecae704ec4ae66da',
    AppSecret: '1b381b2696445e1d9ff79754d38fa60d',
    openid: null
};

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

common.formatDate = function (date, formatStr) {
    return new Date(date).Format(formatStr || 'yyyy-MM-dd hh:mm:ss')
}

common.getParamsFromURL = function (URL) {//获取URL中的参数
    var paramObject = {};
    var paramStr = URL.search.substring(1);
    var params = paramStr.split('&');
    for (var i = 0; i < params.length; i++) {
        var pair = params[i].split('=');
        paramObject[pair[0]] = pair[1];
        paramObject[pair[0]] = decodeURI(paramObject[pair[0]]);
    }
    return paramObject;
};

common.auth = function (callback) {
    var params = common.getParamsFromURL(window.location);
    var token = sessionStorage.getItem("token");
    if (token) {
        var userInfo = JSON.parse(sessionStorage.getItem('userInfo'));
        service.updateOnlineState({ openid: userInfo.openid }, callback);
        setTimeout(function () {
            service.updateOnlineState({ openid: userInfo.openid }, function () {
                
            });
        }, 60000);
        return;
    }
    if (params.code == undefined) {
        var APPID = common.APPID,
            REDIRECT_URI = window.location;
        var Url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + APPID + "&redirect_uri=" + REDIRECT_URI +
            "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        window.location.href = Url;
    } else {
        getToken(params.code, callback);
    }
//	window.history.replaceState({}, '', window.location.href.substr(0, window.location.href.lastIndexOf('?')));
}

var setImageSrc = function (img) {
    if (img.getAttribute('data-src')) {
        img.setAttribute('src', img.getAttribute('data-src'));
        img.onload = function () {
            console.log('onload');
            img.removeAttribute('data-src');
        }
        img.onerror = function () {
            console.log(img.tryCount)
            // if (!img.getAttribute('data-src') || (img.tryCount && img.tryCount > 5)) return;
            console.log('onerror');
            img.setAttribute('src', '../img/default-header.png');
            // img.setAttribute('src', img.getAttribute('data-src'));
            // img.tryCount ? img.tryCount += 1 : 1;
        }
    }
}

common.lazyLoadImg = function () {
    var images = document.getElementsByTagName('img');
    // console.log(images)
    for (var i = 0; i < images.length; i++) {
        setImageSrc(images[i]);
    }
}

var getToken = function (code, callback) {
    var getTokenCallBack = function (res) {
        sessionStorage.setItem("IsNewUser", res.IsNewUser);
        sessionStorage.setItem("userInfo", JSON.stringify(res.UserInfo));
        sessionStorage.setItem("token", res.token);
        var userInfo = JSON.parse(sessionStorage.getItem('userInfo'));
        service.updateOnlineState({ openid: userInfo.openid }, callback);
        setTimeout(function () {
            service.updateOnlineState({ openid: userInfo.openid }, function () {

            });
        }, 60000);
    };
    var options = {
        code: code
    };
    service.getToken(options, getTokenCallBack);
}

common.getAstro = function (m, d) {
    return "魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯".substr(m * 2 - (d < "102223444433".charAt(m - 1) - -19) * 2, 2);
}

//全国省市县级联
// JavaScript Document
//大洋洲
var city1 = ['澳大利亚', '新西兰'];
//非洲
var city2 = ['阿尔及利亚', '阿森松', '埃及', '埃塞俄比亚', '安哥拉', '贝宁', '布基拉法索', '布隆迪', '赤道几内亚', '多哥', '佛得角', '冈比亚', '刚果', '吉布提', '几内亚', '几内亚比绍', '加纳', '加蓬', '喀麦隆', '科特迪瓦', '肯尼亚', '利比里亚', '利比亚', '卢旺达', '马里', '毛里求斯', '毛里塔尼亚', '摩洛哥', '摩纳哥', '莫桑比克', '南非', '尼日尔', '尼日利亚', '普林西比', '塞拉利昂', '塞内加尔', '塞舌尔', '圣多美', '苏丹', '索马里', '突尼斯', '乌干达', '扎伊尔', '乍得', '中非'];
//美洲
var city3 = ['阿根廷', '巴拉圭', '巴拿马', '巴西', '玻利维亚', '伯利兹', '厄瓜多尔', '法属圭亚那', '哥伦比亚', '哥斯达黎加', '古巴', '瓜德罗普', '圭亚那', '海地', '洪都拉斯', '加拿大', '马提尼克', '美国', '秘鲁', '墨西哥', '尼加拉瓜', '萨尔瓦多', '圣彼埃尔', '苏里南', '危地马拉', '委内瑞拉', '乌拉圭', '智利'];
//欧洲
var city4 = ['阿尔巴尼亚', '爱尔兰', '爱沙尼亚', '安道尔共和国', '奥地利', '保加利亚', '比利时', '冰岛', '波黑', '波兰', '丹麦', '德国', '俄罗斯', '法国', '梵蒂冈', '芬兰', '荷兰', '捷克', '克罗地亚', '拉脱维亚', '立陶宛', '列支敦士登', '卢森堡', '罗马尼亚', '马耳他', '马其顿', '摩尔多瓦', '南斯拉夫', '挪威', '葡萄牙', '瑞典', '瑞士', '塞浦路斯', '圣马力诺', '斯洛伐克', '斯洛文尼亚', '乌克兰', '西班牙', '希腊', '匈牙利', '意大利', '英国', '直布罗陀'];
//亚洲
var city5 = ['阿富汗', '阿联酋', '阿曼', '巴基斯坦', '巴勒斯坦', '巴林', '不丹', '朝鲜', '东帝汶', '菲律宾', '哈萨克斯坦', '韩国', '柬埔寨', '卡塔尔', '科威特', '老挝', '黎巴嫩', '马尔代夫', '马来西亚', '蒙古', '孟加拉国', '缅甸', '尼泊尔', '日本', '沙特阿拉伯', '斯里兰卡', '塔吉克斯坦', '泰国', '土耳其', '文莱', '新加坡', '叙利亚', '亚美尼亚', '也门', '伊拉克', '伊朗', '以色列', '印度', '印度尼西亚', '约旦', '越南'];
//海外
var city6 = ['台湾', '香港', '澳门'];
//市辖区名称
var city7 = ['北京市', '重庆市', '上海市', '天津市'];
//安徽市辖区名称
var city8 = ['安庆市', '蚌埠市', '亳州市', '巢湖市', '池州市', '滁州市', '阜阳市', '合肥市', '淮北市', '淮南市', '黄山市', '六安市', '马鞍山市', '铜陵市', '芜湖市', '宿州市', '宣城市'];
//福建市辖区名称
var city9 = ['福州市', '龙岩市', '南平市', '宁德市', '莆田市', '泉州市', '三明市', '厦门市', '漳州市'];
//甘肃市辖区名称
var city10 = ['白银市', '定西市', '甘南藏族自治州', '嘉峪关市', '金昌市', '酒泉市', '兰州市', '临夏回族自治州', '陇南市', '平凉市', '庆阳市', '天水市', '武威市', '张掖市'];
//广东省主要城市名称
var city11 = ['潮州市', '东莞市', '佛山市', '广州市', '河源市', '惠州市', '江门市', '揭阳市', '茂名市', '梅州市', '清远市', '汕头市', '汕尾市', '韶关市', '深圳市', '阳江市', '云浮市', '湛江市', '肇庆市', '中山市', '珠海市'];
//广西省主要城市名称
var city12 = ['百色市', '北海市', '崇左市', '防城港市', '贵港市', '桂林市', '河池市', '贺州市', '来宾市', '柳州市', '南宁市', '钦州市', '梧州市', '玉林市'];
//贵州省主要城市名称
var city13 = ['安顺市', '毕节地区', '贵阳市', '六盘水市', '黔东南苗族侗族自治州', '黔南布依族苗族自治州', '黔西南布依族苗族自治州', '铜仁地区', '遵义市'];
//海南省主要城市名称
var city14 = ['白沙黎族自治县', '保亭黎族苗族自治县', '昌江黎族自治县', '澄迈县', '儋州市', '定安县', '东方市', '海口市', '乐东黎族自治县', '临高县', '陵水黎族自治县', '琼海市', '琼中黎族苗族自治县', '三亚市', '屯昌县', '万宁市', '文昌市', '五指山市'];
//河北省主要城市名称
var city15 = ['保定市', '沧州市', '承德市', '邯郸市', '衡水市', '廊坊市', '秦皇岛市', '石家庄市', '唐山市', '邢台市', '张家口市'];
//河南省主要城市名称
var city16 = ['安阳市', '鹤壁市', '济源市', '焦作市', '开封市', '洛阳市', '漯河市', '南阳市', '平顶山市', '濮阳市', '三门峡市', '商丘市', '新乡市', '信阳市', '许昌市', '郑州市', '周口市', '驻马店市'];
//黑龙江省主要城市名称
var city17 = ['大庆市', '大兴安岭地区', '哈尔滨市', '鹤岗市', '黑河市', '鸡西市', '佳木斯市', '牡丹江市', '七台河市', '齐齐哈尔市', '双鸭山市', '绥化市', '伊春市'];
//湖北省主要城市名称
var city18 = ['鄂州市', '恩施土家族苗族自治州', '黄冈市', '黄石市', '荆门市', '荆州市', '十堰市', '随州市', '武汉市', '咸宁市', '襄樊市', '孝感市', '宜昌市'];
//湖南省主要城市名称
var city19 = ['常德市', '郴州市', '衡阳市', '怀化市', '娄底市', '邵阳市', '湘潭市', '湘西土家族苗族自治州', '益阳市', '永州市', '岳阳市', '张家界市', '长沙市', '株洲市'];
//吉林省主要城市名称
var city20 = ['白城市', '白山市', '吉林市', '辽源市', '四平市', '松原市', '通化市', '延边朝鲜族自治州', '长春市'];
//江苏省主要城市名称
var city21 = ['常州市', '淮安市', '连云港市', '南京市', '南通市', '苏州市', '泰州市', '无锡市', '宿迁市', '徐州市', '盐城市', '扬州市', '镇江市'];
//江西省主要城市名称
var city22 = ['抚州市', '赣州市', '吉安市', '景德镇市', '九江市', '南昌市', '萍乡市', '上饶市', '新余市', '宜春市', '鹰潭市'];
//辽宁省主要城市名称
var city23 = ['鞍山市', '本溪市', '朝阳市', '大连市', '丹东市', '抚顺市', '阜新市', '葫芦岛市', '锦州市', '辽阳市', '盘锦市', '沈阳市', '铁岭市', '营口市']
//内蒙古省主要城市名称
var city24 = ['阿拉善盟', '巴彦淖尔市', '包头市', '赤峰市', '鄂尔多斯市', '呼和浩特市', '呼伦贝尔市', '通辽市', '乌海市', '乌兰察布市', '锡林郭勒盟', '兴安盟'];
//宁夏省主要城市名称
var city25 = ['固原市', '石嘴山市', '吴忠市', '银川市', '中卫市'];
//青海省主要城市名称
var city26 = ['果洛藏族自治州', '海北藏族自治州', '海东地区', '海南藏族自治州', '海西蒙古族藏族自治州', '黄南藏族自治州', '西宁市', '玉树藏族自治州'];
//山东省主要城市名称
var city27 = ['滨州市', '德州市', '东营市', '菏泽市', '济南市', '济宁市', '莱芜市', '聊城市', '临沂市', '青岛市', '日照市', '泰安市', '威海市', '潍坊市', '烟台市', '枣庄市', '淄博市'];
//山西省主要城市名称
var city28 = ['大同市', '晋城市', '晋中市', '临汾市', '吕梁市', '朔州市', '太原市', '忻州市', '阳泉市', '运城市', '长治市'];
//陕西省主要城市名称
var city29 = ['安康市', '宝鸡市', '汉中市', '商洛市', '铜川市', '渭南市', '西安市', '咸阳市', '延安市', '榆林市'];
//四川省主要城市名称
var city30 = ['阿坝藏族羌族自治州', '巴中市', '成都市', '达州市', '德阳市', '甘孜藏族自治州', '广安市', '广元市', '乐山市', '凉山彝族自治州', '泸州市', '眉山市', '绵阳市', '南充市', '内江市', '攀枝花市', '遂宁市', '雅安市', '宜宾市', '资阳市', '自贡市'];
//西藏省主要城市名称
var city31 = ['阿里地区', '昌都地区', '拉萨市', '林芝地区', '那曲地区', '日喀则地区', '山南地区'];
//新疆省主要城市名称
var city32 = ['阿克苏地区', '阿勒泰地区', '巴音郭楞蒙古自治州', '博尔塔拉蒙古自治州', '昌吉回族自治州', '哈密地区', '和田地区', '喀什地区', '克拉玛依市', '克孜勒苏柯尔克孜自治州', '塔城地区', '吐鲁番地区', '乌鲁木齐市', '伊犁哈萨克自治州'];
//云南主要城市名称
var city33 = ['保山市', '楚雄彝族自治州', '大理白族自治州', '德宏傣族景颇族自治州', '迪庆藏族自治州', '红河哈尼族彝族自治州', '昆明市', '丽江市', '临沧市', '怒江僳僳族自治州', '普洱市', '曲靖市', '文山壮族苗族自治州', '西双版纳傣族自治州', '玉溪市', '昭通市'];
//浙江主要城市名称
var city34 = ['杭州市', '湖州市', '嘉兴市', '金华市', '丽水市', '宁波市', '衢州市', '绍兴市', '台州市', '温州市', '舟山市'];

//全国省会，直辖市，自治区名称
common.provinceName = ["大洋洲", "非洲", "美洲", "欧洲", "亚洲", "港澳台", "直辖市", "安徽", "福建", "甘肃", "广东", "广西", "贵州", "海南", "河北", "河南", "黑龙江", "湖北", "湖南", "吉林", "江苏", "江西", "辽宁", "内蒙古", "宁夏", "青海", "山东", "山西", "陕西", "四川", "西藏", "新疆", "云南", "浙江"];

common.getCity = function (n) {
    if (n == -1) return;
    return eval("city" + n); // 得到城市的数组名
}

common.YMCount = function () {
    // 有盟统计
    var scriptElement = document.createElement('script');
    scriptElement.src = 'https://s13.cnzz.com/z_stat.php?id=1264440972&web_id=1264440972';
    document.body.appendChild(scriptElement);
    $("a[title=站长统计]").hide();
}

Array.prototype.distinct = function (){
    var arr = this,
        result = [];
    arr.forEach(function(v, i ,arr){  //这里利用map，filter方法也可以实现
        var bool = arr.indexOf(v,i+1);  //从传入参数的下一个索引值开始寻找是否存在重复
        if(bool === -1){
            result.push(v);
        }
    })
    return result;
}